package be.khleuven.KevinVranken.web;
import java.util.ArrayList;
import java.util.HashMap;

public class Databank {
	
	private static HashMap<Integer,Opslagmedium> opslagmedia = new HashMap<Integer,Opslagmedium>();
	private static ArrayList<Nummer> nummers = new ArrayList<Nummer>();
	private static ArrayList<Artiest> artiesten = new ArrayList<Artiest>();
	
	public static Opslagmedium getOpslagmedium(int nummer) {
		return opslagmedia.get(nummer);
	}

	public static Nummer getNummer(String titel, String artiest) {
		for (Nummer nummer : nummers) {
			if (nummer.getTitel() == titel && nummer.getArtiest().getNaam() == artiest) {
				return nummer;
			}
		}
		return null;
	}
	
	public static Artiest getArtiest(String naam){
		for (Artiest artiest: artiesten){
			if (artiest.getNaam() == naam) return artiest;
		}
		return null;
	}


	public static void addCD(String titel, int nummer){
		opslagmedia.put(nummer,new CD(titel));
	}
	
	public static void addLP(String titel, int nummer, int toeren){
		opslagmedia.put(nummer, new LP(titel, toeren));
	}
	
	
	public static void addNummer(Artiest artiest, String titel, int duur, int volgnummer){
		Opslagmedium opslagmedium = Databank.getOpslagmedium(volgnummer);
		Nummer nummer = new Nummer(artiest, titel, duur, opslagmedium, volgnummer);
		nummers.add(nummer);
		opslagmedium.addNummer(nummer);
	}
	
	public static void removeNummer(Nummer nummer, int volgnummer){
		Opslagmedium opslagmedium = Databank.getOpslagmedium(volgnummer);
		nummers.remove(nummer);
		opslagmedium.removeNummer(nummer);
	}
	
	public static void addArtiest(String naam, String genre){
		artiesten.add(new Artiest(naam, genre));
	}
	

	/**
	 * @return the nummers
	 */
	public static ArrayList<Nummer> getNummers() {
		return nummers;
	}

	/**
	 * @param nummers the nummers to set
	 */
	public static void setNummers(ArrayList<Nummer> nummers) {
		Databank.nummers = nummers;
	}

	/**
	 * @return the artiesten
	 */
	public static ArrayList<Artiest> getArtiesten() {
		return artiesten;
	}

	/**
	 * @param artiesten the artiesten to set
	 */
	public static void setArtiesten(ArrayList<Artiest> artiesten) {
		Databank.artiesten = artiesten;
	}

	/**
	 * @return the opslagmedia
	 */
	public static HashMap<Integer, Opslagmedium> getOpslagmedia() {
		return opslagmedia;
	}

	/**
	 * @param opslagmedia the opslagmedia to set
	 */
	public static void setOpslagmedia(HashMap<Integer, Opslagmedium> opslagmedia) {
		Databank.opslagmedia = opslagmedia;
	}

	
	
}
